Skip to content

Update documentation for wasi:filesystem:descriptor#link-at.#848

Open
wingo wants to merge 2 commits intoWebAssembly:mainfrom
wingo:doc-link-at-weirdness
Open

Update documentation for wasi:filesystem:descriptor#link-at.#848
wingo wants to merge 2 commits intoWebAssembly:mainfrom
wingo:doc-link-at-weirdness

Conversation

@wingo
Copy link
Contributor

@wingo wingo commented Dec 9, 2025

It would have been nice for linkat to do just what POSIX does, but Windows includes the case of hard-linking a directory in EACCESS instead of the POSIX-prescribed EPERM.

It would have been nice for `linkat` to do just what POSIX does, but
Windows includes the case of hard-linking a directory in EACCESS instead
of the POSIX-prescribed EPERM.
/// Fails with `error-code::no-entry` if the old path does not exist,
/// with `error-code::exist` if the new path already exists, and
/// `error-code::not-permitted` if the old path is not a file.
/// Behavior is as described by [POSIX
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you mind keeping the previous description of failure modes, and adding this prose + link at the bottom with something like "for more information, see " ?

Laying out the common failure mode and meanings is reasonable in the docs, rather than (for the same reason we note the failure mode for hard links).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if only mentioning a subset of error modes might confuse the reader as being exhaustive; that was certainly my confusion when I read this at first.

The case of hard links is different, because it refines POSIX.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah that's a great point.

It's a bit crude but I really want to optimize for saving the user a dig down the rabbit hole if we know the answer for at least some of the platforms and corner cases. What do you think about a note that it is non-exhaustive?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW, the sockets interface describes the possible errors too. But phrases them as "Typical errors"

This communicates clearly what common failure modes the caller can expect, but also doesn't rigidly tie things down for the implementation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P-filesystem Proposal: wasi-filesystem

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

Comments